﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

using System.Collections.Generic;

/*
namespace GControles
{*/
    public partial class CtrlEstado : System.Web.UI.UserControl
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            Resetea();
        }
        /// <summary>
        /// Metodo que asigna memoria a los componentes del controlador
        /// </summary>
        public void InicializaElementos()
        {
           
            if (this.idLabelEstado == null)
              this.idLabelEstado = new Label();
           this.idLabelEstado.Text = _estado;
           this.idLabelEstado.Visible = true;
           this.idLabelEstado.CssClass = "LabelActiva";

           if (this.idLabelMensaje == null)
              this.idLabelMensaje = new Label();
           this.idLabelMensaje.Text = _mensaje;
           this.idLabelMensaje.Visible = true;
           this.idLabelMensaje.CssClass = "LabelActiva";

           if (this.idLabelPorcentaje == null)
              this.idLabelPorcentaje = new Label();
           this.idLabelPorcentaje.Text = _porcentaje.ToString();
           this.idLabelPorcentaje.Visible = true;
           this.idLabelPorcentaje.CssClass = "LabelActiva";
           

        }
        /// <summary>
        /// Método de puesta a cero en el estado del controlador
        /// </summary>
        public void Resetea()
        {
            _numBotones = 0;
            _botones = new List<Button>();
            _porcentaje = 0;
            _mensaje = "";
            _estado = "";
            _activo = true;
        }
        /// <summary>
        /// Metodo de actualización , redibujado , del controlador
        /// </summary>
        /// <returns></returns>
        public void Actualiza()
        {
           int i = 0;
           Button uno = new Button();
           while (i < _numBotones)
           {
              uno = _botones.ElementAt(i);
              uno.Visible = true;
              uno.CssClass = "BotonActivo";
              
           }
            //this.SaveViewState();
            //this.SaveControlState();
            
        }
        /// <summary>
        /// Establece el valor del parametro estado
        /// </summary>
        /// <param name="parametro"></param>
        public void setEstado(String parametro)
        {
            if (parametro != null)
            {
                _estado = parametro;
            }
        }
        /// <summary>
        /// Establece el valor del parametro estado
        /// </summary>
        /// <param name="parametro"></param>
        public void setMensaje(String parametro)
        {
            if (parametro != null)
            {
                _mensaje = parametro;
            }
        }
        /// <summary>
        /// Establece el valor del parametro estado
        /// </summary>
        /// <param name="parametro"></param>
        public void setPorcentaje(double parametro)
        {
            if ((parametro >= 0) && (parametro <= 100))
            {
                _porcentaje = parametro;
            }
        }
        /// <summary>
        /// Establece el valor del parametro estado
        /// </summary>
        /// <param name="parametro"></param>
        public String getEstado()
        {
            return _estado;
        }
        /// <summary>
        /// Establece el valor del parametro estado
        /// </summary>
        /// <param name="parametro"></param>
        public String getMensaje()
        {
            return _mensaje;
        }
        /// <summary>
        /// Establece el valor del parametro estado
        /// </summary>
        /// <param name="parametro"></param>
        public double getPorcentaje()
        {
            return _porcentaje;
        }
        public int getNumbotones ()
        {
           return _numBotones;
        }
        public Button getBoton ( int param )
        {
           if ((param <= _numBotones )&& (param >= 0))
           {
              return _botones.ElementAt(param);
           }
           return null;

        }
        /// <summary>
        /// Metodo que identifica la accion a realizar por el elemento del menu segun un string
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void ProcesaAccionEstado()
        {
            Response.Redirect("/");

        }
        public String getNombreBoton(int param)
        {
            if ((param <= _numBotones) && (param >= 0))
            {
                return _botones.ElementAt(param).Text ;
            }
            return null;
        }
        public void setBoton(Button param)
        {
           if (_botones == null)
           {
              _botones = new List<Button>();
              _numBotones = 0;
           }
           if (!_botones.Contains(param))
           {
              _botones.Add(param);
              _numBotones++;
           }
        }
        public bool getEstaActivo ()
        {
           return _activo;
        }
        public void setEstaActivo ( bool param )
        {
              _activo = param;
        }
        //Booleano que indica si esta activo
        private bool _activo;
        // Estado de la acción actual
        private String _estado;
        // Mensaje de la accion actual;
        private String _mensaje;
        // Porcentaje de acción completado;
        private double _porcentaje;
        private List<Button> _botones;
        private int _numBotones;
    }
//}

